<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //组合继承
    //通过call继承对实例属性的继承，
    //原型链对原型方法的继承， 调用多次父类构造函数



    //组合原型链继承和借用构造函数继承

    //父
    function Person(name) {//给构造函数添加了参数
        this.name = name;
        this.sum = function () {
            alert(this.name);
        }
    }
    Person.prototype.age = 10;//给构造函数添加了原型属性


    function SubType(name){
        Person.call(this.name);//借用构造函数模式
    }
    SubType.prototype = new Person();//原型链继承
    var sub = new SubType('gar');
    console.log(sub.name);//gar继承了构造函数的属性  //undefined
    console.log(sub.age);//继承了父类原型的属性     //10
</script>